1. Technical Field of the Invention
This invention pertains to editing systems. More particularly, it relates to language-specific extensions to the compare facility in an editing system.
2. Background Art
Regular file compare, carried out by a straightforward comparison of the text elements of a number of files, is not adequate for logical, effective comparison of source files in a manner that will improve the productivity of programmers and assist them during their various code development and code maintenance tasks.
In addition to the options normally provided by compare facilities (e.g., ignore blanks, ignore case), there is a need in the art for a system and method providing language specific requirements.
It is, therefore, an object of the invention to provide a system and method for comparing source files code while ignoring the comments.
It is a further object of the invention to provide a system and method for comparing functions and/or methods defined in source files (names, arguments, etc.), regardless of their detailed implementation.
It is a further object of the invention to provide a system and method for comparing code while ignoring the text located outside margins, in a prefix area, and/or including or excluding sequence numbers, and so forth.
It is a further object of the invention to provide a system and method for comparing source code statement-by-statement, e.g., one-line statement vs. a reformatted statement spread over a number of document lines, effectively ignoring the differences in formatting styles between programmers or coding standards and practices between projects or institutions.
It is a further object of the invention to provide a system and method for comparing constant definitions or keys in, for example, Java resource files, where the values are different (e.g., new constant values or NLS-translated values), in which case the user may still be interested in an indication that the value changed, but does not want to have every line flagged as non-comparing.
It is a further object of the invention to provide a system and method for comparing documents with expected (controlled) differences, such as the change of a class name or a variable name.
It is a further object of the invention to provide a system and method facilitating language-sensitive application of compare options (e.g., ignore case and ignore blanks applied only to language elements and comments, but not to contents of strings).
It is a further object of the invention to provide a system and method for comparing documents in any manner that is advantageous for a specific type of filed handled by the edit system.